home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD 2.1 / Amiga Developer CD v2.1.iso / NDK / NDK_3.5 / Include / include_h / pragmas / utility_pragmas.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-10-20  |  10.7 KB  |  316 lines

  1. #ifndef PRAGMAS_UTILITY_PRAGMAS_H
  2. #define PRAGMAS_UTILITY_PRAGMAS_H
  3.  
  4. /*
  5. **    $VER: utility_pragmas.h 40.1 (17.5.1996)
  6. **    Includes Release 44.1
  7. **
  8. **    Direct ROM interface (pragma) definitions.
  9. **
  10. **    Copyright © 1999 Amiga, Inc.
  11. **        All Rights Reserved
  12. */
  13.  
  14. #if defined(LATTICE) || defined(__SASC) || defined(_DCC)
  15. #ifndef __CLIB_PRAGMA_LIBCALL
  16. #define __CLIB_PRAGMA_LIBCALL
  17. #endif /* __CLIB_PRAGMA_LIBCALL */
  18. #else /* __MAXON__, __STORM__ or AZTEC_C */
  19. #ifndef __CLIB_PRAGMA_AMICALL
  20. #define __CLIB_PRAGMA_AMICALL
  21. #endif /* __CLIB_PRAGMA_AMICALL */
  22. #endif /* */
  23.  
  24. #if defined(__SASC) || defined(__STORM__)
  25. #ifndef __CLIB_PRAGMA_TAGCALL
  26. #define __CLIB_PRAGMA_TAGCALL
  27. #endif /* __CLIB_PRAGMA_TAGCALL */
  28. #endif /* __MAXON__, __STORM__ or AZTEC_C */
  29.  
  30. #ifndef CLIB_UTILITY_PROTOS_H
  31. #include <clib/utility_protos.h>
  32. #endif /* CLIB_UTILITY_PROTOS_H */
  33.  
  34. /*--- functions in V36 or higher (Release 2.0) ---*/
  35.  
  36. /* Tag item functions */
  37.  
  38. #ifdef __CLIB_PRAGMA_LIBCALL
  39.  #pragma libcall UtilityBase FindTagItem 1e 8002
  40. #endif /* __CLIB_PRAGMA_LIBCALL */
  41. #ifdef __CLIB_PRAGMA_AMICALL
  42.  #pragma amicall(UtilityBase, 0x1e, FindTagItem(d0,a0))
  43. #endif /* __CLIB_PRAGMA_AMICALL */
  44. #ifdef __CLIB_PRAGMA_LIBCALL
  45.  #pragma libcall UtilityBase GetTagData 24 81003
  46. #endif /* __CLIB_PRAGMA_LIBCALL */
  47. #ifdef __CLIB_PRAGMA_AMICALL
  48.  #pragma amicall(UtilityBase, 0x24, GetTagData(d0,d1,a0))
  49. #endif /* __CLIB_PRAGMA_AMICALL */
  50. #ifdef __CLIB_PRAGMA_LIBCALL
  51.  #pragma libcall UtilityBase PackBoolTags 2a 98003
  52. #endif /* __CLIB_PRAGMA_LIBCALL */
  53. #ifdef __CLIB_PRAGMA_AMICALL
  54.  #pragma amicall(UtilityBase, 0x2a, PackBoolTags(d0,a0,a1))
  55. #endif /* __CLIB_PRAGMA_AMICALL */
  56. #ifdef __CLIB_PRAGMA_LIBCALL
  57.  #pragma libcall UtilityBase NextTagItem 30 801
  58. #endif /* __CLIB_PRAGMA_LIBCALL */
  59. #ifdef __CLIB_PRAGMA_AMICALL
  60.  #pragma amicall(UtilityBase, 0x30, NextTagItem(a0))
  61. #endif /* __CLIB_PRAGMA_AMICALL */
  62. #ifdef __CLIB_PRAGMA_LIBCALL
  63.  #pragma libcall UtilityBase FilterTagChanges 36 09803
  64. #endif /* __CLIB_PRAGMA_LIBCALL */
  65. #ifdef __CLIB_PRAGMA_AMICALL
  66.  #pragma amicall(UtilityBase, 0x36, FilterTagChanges(a0,a1,d0))
  67. #endif /* __CLIB_PRAGMA_AMICALL */
  68. #ifdef __CLIB_PRAGMA_LIBCALL
  69.  #pragma libcall UtilityBase MapTags 3c 09803
  70. #endif /* __CLIB_PRAGMA_LIBCALL */
  71. #ifdef __CLIB_PRAGMA_AMICALL
  72.  #pragma amicall(UtilityBase, 0x3c, MapTags(a0,a1,d0))
  73. #endif /* __CLIB_PRAGMA_AMICALL */
  74. #ifdef __CLIB_PRAGMA_LIBCALL
  75.  #pragma libcall UtilityBase AllocateTagItems 42 001
  76. #endif /* __CLIB_PRAGMA_LIBCALL */
  77. #ifdef __CLIB_PRAGMA_AMICALL
  78.  #pragma amicall(UtilityBase, 0x42, AllocateTagItems(d0))
  79. #endif /* __CLIB_PRAGMA_AMICALL */
  80. #ifdef __CLIB_PRAGMA_LIBCALL
  81.  #pragma libcall UtilityBase CloneTagItems 48 801
  82. #endif /* __CLIB_PRAGMA_LIBCALL */
  83. #ifdef __CLIB_PRAGMA_AMICALL
  84.  #pragma amicall(UtilityBase, 0x48, CloneTagItems(a0))
  85. #endif /* __CLIB_PRAGMA_AMICALL */
  86. #ifdef __CLIB_PRAGMA_LIBCALL
  87.  #pragma libcall UtilityBase FreeTagItems 4e 801
  88. #endif /* __CLIB_PRAGMA_LIBCALL */
  89. #ifdef __CLIB_PRAGMA_AMICALL
  90.  #pragma amicall(UtilityBase, 0x4e, FreeTagItems(a0))
  91. #endif /* __CLIB_PRAGMA_AMICALL */
  92. #ifdef __CLIB_PRAGMA_LIBCALL
  93.  #pragma libcall UtilityBase RefreshTagItemClones 54 9802
  94. #endif /* __CLIB_PRAGMA_LIBCALL */
  95. #ifdef __CLIB_PRAGMA_AMICALL
  96.  #pragma amicall(UtilityBase, 0x54, RefreshTagItemClones(a0,a1))
  97. #endif /* __CLIB_PRAGMA_AMICALL */
  98. #ifdef __CLIB_PRAGMA_LIBCALL
  99.  #pragma libcall UtilityBase TagInArray 5a 8002
  100. #endif /* __CLIB_PRAGMA_LIBCALL */
  101. #ifdef __CLIB_PRAGMA_AMICALL
  102.  #pragma amicall(UtilityBase, 0x5a, TagInArray(d0,a0))
  103. #endif /* __CLIB_PRAGMA_AMICALL */
  104. #ifdef __CLIB_PRAGMA_LIBCALL
  105.  #pragma libcall UtilityBase FilterTagItems 60 09803
  106. #endif /* __CLIB_PRAGMA_LIBCALL */
  107. #ifdef __CLIB_PRAGMA_AMICALL
  108.  #pragma amicall(UtilityBase, 0x60, FilterTagItems(a0,a1,d0))
  109. #endif /* __CLIB_PRAGMA_AMICALL */
  110.  
  111. /* Hook functions */
  112.  
  113. #ifdef __CLIB_PRAGMA_LIBCALL
  114.  #pragma libcall UtilityBase CallHookPkt 66 9A803
  115. #endif /* __CLIB_PRAGMA_LIBCALL */
  116. #ifdef __CLIB_PRAGMA_AMICALL
  117.  #pragma amicall(UtilityBase, 0x66, CallHookPkt(a0,a2,a1))
  118. #endif /* __CLIB_PRAGMA_AMICALL */
  119. /*--- (1 function slot reserved here) ---*/
  120.  
  121. /* Date functions */
  122.  
  123. /*--- (1 function slot reserved here) ---*/
  124. #ifdef __CLIB_PRAGMA_LIBCALL
  125.  #pragma libcall UtilityBase Amiga2Date 78 8002
  126. #endif /* __CLIB_PRAGMA_LIBCALL */
  127. #ifdef __CLIB_PRAGMA_AMICALL
  128.  #pragma amicall(UtilityBase, 0x78, Amiga2Date(d0,a0))
  129. #endif /* __CLIB_PRAGMA_AMICALL */
  130. #ifdef __CLIB_PRAGMA_LIBCALL
  131.  #pragma libcall UtilityBase Date2Amiga 7e 801
  132. #endif /* __CLIB_PRAGMA_LIBCALL */
  133. #ifdef __CLIB_PRAGMA_AMICALL
  134.  #pragma amicall(UtilityBase, 0x7e, Date2Amiga(a0))
  135. #endif /* __CLIB_PRAGMA_AMICALL */
  136. #ifdef __CLIB_PRAGMA_LIBCALL
  137.  #pragma libcall UtilityBase CheckDate 84 801
  138. #endif /* __CLIB_PRAGMA_LIBCALL */
  139. #ifdef __CLIB_PRAGMA_AMICALL
  140.  #pragma amicall(UtilityBase, 0x84, CheckDate(a0))
  141. #endif /* __CLIB_PRAGMA_AMICALL */
  142.  
  143. /* 32 bit integer muliply functions */
  144.  
  145. #ifdef __CLIB_PRAGMA_LIBCALL
  146.  #pragma libcall UtilityBase SMult32 8a 1002
  147. #endif /* __CLIB_PRAGMA_LIBCALL */
  148. #ifdef __CLIB_PRAGMA_AMICALL
  149.  #pragma amicall(UtilityBase, 0x8a, SMult32(d0,d1))
  150. #endif /* __CLIB_PRAGMA_AMICALL */
  151. #ifdef __CLIB_PRAGMA_LIBCALL
  152.  #pragma libcall UtilityBase UMult32 90 1002
  153. #endif /* __CLIB_PRAGMA_LIBCALL */
  154. #ifdef __CLIB_PRAGMA_AMICALL
  155.  #pragma amicall(UtilityBase, 0x90, UMult32(d0,d1))
  156. #endif /* __CLIB_PRAGMA_AMICALL */
  157.  
  158. /* 32 bit integer division funtions. The quotient and the remainder are */
  159. /* returned respectively in d0 and d1 */
  160.  
  161. #ifdef __CLIB_PRAGMA_LIBCALL
  162.  #pragma libcall UtilityBase SDivMod32 96 1002
  163. #endif /* __CLIB_PRAGMA_LIBCALL */
  164. #ifdef __CLIB_PRAGMA_AMICALL
  165.  #pragma amicall(UtilityBase, 0x96, SDivMod32(d0,d1))
  166. #endif /* __CLIB_PRAGMA_AMICALL */
  167. #ifdef __CLIB_PRAGMA_LIBCALL
  168.  #pragma libcall UtilityBase UDivMod32 9c 1002
  169. #endif /* __CLIB_PRAGMA_LIBCALL */
  170. #ifdef __CLIB_PRAGMA_AMICALL
  171.  #pragma amicall(UtilityBase, 0x9c, UDivMod32(d0,d1))
  172. #endif /* __CLIB_PRAGMA_AMICALL */
  173. /*--- functions in V37 or higher (Release 2.04) ---*/
  174.  
  175. /* International string routines */
  176.  
  177. #ifdef __CLIB_PRAGMA_LIBCALL
  178.  #pragma libcall UtilityBase Stricmp a2 9802
  179. #endif /* __CLIB_PRAGMA_LIBCALL */
  180. #ifdef __CLIB_PRAGMA_AMICALL
  181.  #pragma amicall(UtilityBase, 0xa2, Stricmp(a0,a1))
  182. #endif /* __CLIB_PRAGMA_AMICALL */
  183. #ifdef __CLIB_PRAGMA_LIBCALL
  184.  #pragma libcall UtilityBase Strnicmp a8 09803
  185. #endif /* __CLIB_PRAGMA_LIBCALL */
  186. #ifdef __CLIB_PRAGMA_AMICALL
  187.  #pragma amicall(UtilityBase, 0xa8, Strnicmp(a0,a1,d0))
  188. #endif /* __CLIB_PRAGMA_AMICALL */
  189. #ifdef __CLIB_PRAGMA_LIBCALL
  190.  #pragma libcall UtilityBase ToUpper ae 001
  191. #endif /* __CLIB_PRAGMA_LIBCALL */
  192. #ifdef __CLIB_PRAGMA_AMICALL
  193.  #pragma amicall(UtilityBase, 0xae, ToUpper(d0))
  194. #endif /* __CLIB_PRAGMA_AMICALL */
  195. #ifdef __CLIB_PRAGMA_LIBCALL
  196.  #pragma libcall UtilityBase ToLower b4 001
  197. #endif /* __CLIB_PRAGMA_LIBCALL */
  198. #ifdef __CLIB_PRAGMA_AMICALL
  199.  #pragma amicall(UtilityBase, 0xb4, ToLower(d0))
  200. #endif /* __CLIB_PRAGMA_AMICALL */
  201. /*--- functions in V39 or higher (Release 3) ---*/
  202.  
  203. /* More tag Item functions */
  204.  
  205. #ifdef __CLIB_PRAGMA_LIBCALL
  206.  #pragma libcall UtilityBase ApplyTagChanges ba 9802
  207. #endif /* __CLIB_PRAGMA_LIBCALL */
  208. #ifdef __CLIB_PRAGMA_AMICALL
  209.  #pragma amicall(UtilityBase, 0xba, ApplyTagChanges(a0,a1))
  210. #endif /* __CLIB_PRAGMA_AMICALL */
  211. /*--- (1 function slot reserved here) ---*/
  212.  
  213. /* 64 bit integer muliply functions. The results are 64 bit quantities */
  214. /* returned in D0 and D1 */
  215.  
  216. #ifdef __CLIB_PRAGMA_LIBCALL
  217.  #pragma libcall UtilityBase SMult64 c6 1002
  218. #endif /* __CLIB_PRAGMA_LIBCALL */
  219. #ifdef __CLIB_PRAGMA_AMICALL
  220.  #pragma amicall(UtilityBase, 0xc6, SMult64(d0,d1))
  221. #endif /* __CLIB_PRAGMA_AMICALL */
  222. #ifdef __CLIB_PRAGMA_LIBCALL
  223.  #pragma libcall UtilityBase UMult64 cc 1002
  224. #endif /* __CLIB_PRAGMA_LIBCALL */
  225. #ifdef __CLIB_PRAGMA_AMICALL
  226.  #pragma amicall(UtilityBase, 0xcc, UMult64(d0,d1))
  227. #endif /* __CLIB_PRAGMA_AMICALL */
  228.  
  229. /* Structure to Tag and Tag to Structure support routines */
  230.  
  231. #ifdef __CLIB_PRAGMA_LIBCALL
  232.  #pragma libcall UtilityBase PackStructureTags d2 A9803
  233. #endif /* __CLIB_PRAGMA_LIBCALL */
  234. #ifdef __CLIB_PRAGMA_AMICALL
  235.  #pragma amicall(UtilityBase, 0xd2, PackStructureTags(a0,a1,a2))
  236. #endif /* __CLIB_PRAGMA_AMICALL */
  237. #ifdef __CLIB_PRAGMA_LIBCALL
  238.  #pragma libcall UtilityBase UnpackStructureTags d8 A9803
  239. #endif /* __CLIB_PRAGMA_LIBCALL */
  240. #ifdef __CLIB_PRAGMA_AMICALL
  241.  #pragma amicall(UtilityBase, 0xd8, UnpackStructureTags(a0,a1,a2))
  242. #endif /* __CLIB_PRAGMA_AMICALL */
  243.  
  244. /* New, object-oriented NameSpaces */
  245.  
  246. #ifdef __CLIB_PRAGMA_LIBCALL
  247.  #pragma libcall UtilityBase AddNamedObject de 9802
  248. #endif /* __CLIB_PRAGMA_LIBCALL */
  249. #ifdef __CLIB_PRAGMA_AMICALL
  250.  #pragma amicall(UtilityBase, 0xde, AddNamedObject(a0,a1))
  251. #endif /* __CLIB_PRAGMA_AMICALL */
  252. #ifdef __CLIB_PRAGMA_LIBCALL
  253.  #pragma libcall UtilityBase AllocNamedObjectA e4 9802
  254. #endif /* __CLIB_PRAGMA_LIBCALL */
  255. #ifdef __CLIB_PRAGMA_AMICALL
  256.  #pragma amicall(UtilityBase, 0xe4, AllocNamedObjectA(a0,a1))
  257. #endif /* __CLIB_PRAGMA_AMICALL */
  258. #ifdef __CLIB_PRAGMA_TAGCALL
  259.  #ifdef __CLIB_PRAGMA_LIBCALL
  260.   #pragma tagcall UtilityBase AllocNamedObject e4 9802
  261.  #endif /* __CLIB_PRAGMA_LIBCALL */
  262.  #ifdef __CLIB_PRAGMA_AMICALL
  263.   #pragma tagcall(UtilityBase, 0xe4, AllocNamedObject(a0,a1))
  264.  #endif /* __CLIB_PRAGMA_AMICALL */
  265. #endif /* __CLIB_PRAGMA_TAGCALL */
  266. #ifdef __CLIB_PRAGMA_LIBCALL
  267.  #pragma libcall UtilityBase AttemptRemNamedObject ea 801
  268. #endif /* __CLIB_PRAGMA_LIBCALL */
  269. #ifdef __CLIB_PRAGMA_AMICALL
  270.  #pragma amicall(UtilityBase, 0xea, AttemptRemNamedObject(a0))
  271. #endif /* __CLIB_PRAGMA_AMICALL */
  272. #ifdef __CLIB_PRAGMA_LIBCALL
  273.  #pragma libcall UtilityBase FindNamedObject f0 A9803
  274. #endif /* __CLIB_PRAGMA_LIBCALL */
  275. #ifdef __CLIB_PRAGMA_AMICALL
  276.  #pragma amicall(UtilityBase, 0xf0, FindNamedObject(a0,a1,a2))
  277. #endif /* __CLIB_PRAGMA_AMICALL */
  278. #ifdef __CLIB_PRAGMA_LIBCALL
  279.  #pragma libcall UtilityBase FreeNamedObject f6 801
  280. #endif /* __CLIB_PRAGMA_LIBCALL */
  281. #ifdef __CLIB_PRAGMA_AMICALL
  282.  #pragma amicall(UtilityBase, 0xf6, FreeNamedObject(a0))
  283. #endif /* __CLIB_PRAGMA_AMICALL */
  284. #ifdef __CLIB_PRAGMA_LIBCALL
  285.  #pragma libcall UtilityBase NamedObjectName fc 801
  286. #endif /* __CLIB_PRAGMA_LIBCALL */
  287. #ifdef __CLIB_PRAGMA_AMICALL
  288.  #pragma amicall(UtilityBase, 0xfc, NamedObjectName(a0))
  289. #endif /* __CLIB_PRAGMA_AMICALL */
  290. #ifdef __CLIB_PRAGMA_LIBCALL
  291.  #pragma libcall UtilityBase ReleaseNamedObject 102 801
  292. #endif /* __CLIB_PRAGMA_LIBCALL */
  293. #ifdef __CLIB_PRAGMA_AMICALL
  294.  #pragma amicall(UtilityBase, 0x102, ReleaseNamedObject(a0))
  295. #endif /* __CLIB_PRAGMA_AMICALL */
  296. #ifdef __CLIB_PRAGMA_LIBCALL
  297.  #pragma libcall UtilityBase RemNamedObject 108 9802
  298. #endif /* __CLIB_PRAGMA_LIBCALL */
  299. #ifdef __CLIB_PRAGMA_AMICALL
  300.  #pragma amicall(UtilityBase, 0x108, RemNamedObject(a0,a1))
  301. #endif /* __CLIB_PRAGMA_AMICALL */
  302.  
  303. /* Unique ID generator */
  304.  
  305. #ifdef __CLIB_PRAGMA_LIBCALL
  306.  #pragma libcall UtilityBase GetUniqueID 10e 00
  307. #endif /* __CLIB_PRAGMA_LIBCALL */
  308. #ifdef __CLIB_PRAGMA_AMICALL
  309.  #pragma amicall(UtilityBase, 0x10e, GetUniqueID())
  310. #endif /* __CLIB_PRAGMA_AMICALL */
  311.  
  312. /*--- (4 function slots reserved here) ---*/
  313.  
  314.  
  315. #endif /* PRAGMAS_UTILITY_PRAGMAS_H */
  316.